def find_intersection_point(A, B, C, D, tol=1e-8):
    """
    计算两条线段AB和CD延长线的交点

    参数:
        A, B (tuple): 线段AB的端点 (x, y)
        C, D (tuple): 线段CD的端点 (x, y)
        tol (float): 容差值，用于处理浮点数精度

    返回:
        tuple: 交点坐标 (x, y)，如果平行则返回None
    """
    # 解析坐标点
    x1, y1 = A
    x2, y2 = B
    x3, y3 = C
    x4, y4 = D

    # 计算线段AB的方向向量
    dx1 = x2 - x1
    dy1 = y2 - y1

    # 计算线段CD的方向向量
    dx2 = x4 - x3
    dy2 = y4 - y3

    # 计算分母（叉积）
    denominator = dx1 * dy2 - dy1 * dx2

    # 检查是否平行（分母接近0）
    if abs(denominator) < tol:
        return None  # 两直线平行或重合

    # 计算参数t
    t = ((x3 - x1) * dy2 - (y3 - y1) * dx2) / denominator

    # 使用参数t计算交点
    intersection_x = x1 + t * dx1
    intersection_y = y1 + t * dy1

    return intersection_x, intersection_y